#include<stdio.h>
//move函数，把a移至c
void move(char a, char c) {
	printf("%c ——> %c\n", a, c);
}
//汉诺塔函数，通过b把a移至c；
//a为起始柱，b为中转柱，c为目标柱。
void Hanoi(int n, char a, char b, char c) {
	if (n == 1) {
		move(a, c);
	} else {
		Hanoi(n - 1, a, c, b);  //把a柱上的最大的盘子的上面的n - 1个盘子通过c柱移至b柱；
		move(a, c);             //把a柱上的最大的盘子从a移到c柱；
		Hanoi(n - 1, b, a, c);  //把b柱上的n - 1个盘子通过a柱移至c柱
	}
}
int main() {
	int n = 0;
	printf("请输入盘数:\n");
	scanf("%d", &n);
	//while (getchar() != '\n');      //清理缓冲区
	char a = '0';
	char b = '0';
	char c = '0';
	printf("请输入三柱:");
	scanf("%c %c %c", &a, &b, &c);
	printf("%c %c %c\n", a, b, c);
	Hanoi(n, a, b, c);
	return 0;
}
